package org.eclipse.moquette.parser.netty;

import io.netty.buffer.ByteBuf;
import io.netty.util.AttributeMap;
import org.eclipse.moquette.proto.messages.ConnAckMessage;

import java.util.List;

/**
 * connAck 解码
 * Created by alex on 15-5-25.
 */
public class ConnAckDecoder extends DemuxDecoder {


    @Override
    void decode(AttributeMap ctx, ByteBuf in, List<Object> out) throws Exception {

        in.resetReaderIndex();

        ConnAckMessage message = new ConnAckMessage();
        if (!decodeCommonHeader(message, 0x00, in)) {
            in.resetReaderIndex();
            return;
        }

        //skip reserved byte 跳过第一个字节 因为是保留字节
        // 没有处理Session Present,可能是服务器的原因  所以没有处理。
        //boolean sessionPresent = (in.readUnsignedByte() & 0x01) == 0x01;
        //message.setSessionPresent(sessionPresent);
        in.skipBytes(1);

        message.setReturnCode(in.readByte());
        out.add(message);
    }
}
